int
整型是
计算机编程语言中的一种基本数据类型,通常反映了所用机器中整数的最自然长度。int整型可以划分为带符号的(signed)和无符号的(unsigned)两种,带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。在默认情况下声明的
整型变量都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned关键字。
16位系统中一个int能存储的数据的范围为:-32768~32767,而unsigned int能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。所以如果整数的最高位是1,
有符号数的话就是负数;如果是
无符号数,则都表示正数。另外,unsigned若省略后一个关键字,大多数
编译器都会认为是unsigned int。
由以上结果可知,unsigned int溢出后数值回到“起始点”0,而int溢出后数值回到“起始点”-2147483648。应当注意的是,当变量溢出时,系统并没有给出提示,所以编程时需要程序员自己处理这个问题。
如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果,这是因为带符号数会自动地转换成为无符号数。例如一个形如 a*b 的式子中,如果 a=-1,b=1,而且a,b都是int类型,则表达式的值显然为-1,然而如果a是int,而b是unsigned int,则结果须视在当前机器上int所占位数而定,在32位计算机系统中,结果是4294967295。